package GestionBilleterie;

import java.sql.SQLException;
import java.util.List;

/**
 * Classe représentant un type de tarif des places de théatres
 * @author Aude Legrand, Alexandre Becquet
 */
public class Tarif {  
    private String couleur;
	private int prix;
    /**
     * Le nombre de max pour un tarif
     */
    private int nbPlace;
    private int id;

    /**
     * Constructeur d'un Tarif pour un tarif récupéré de la BD
     * @param idTarif l'id du tarif
     * @param couleur la couleur du tarif
     * @param prix le prix
     * @param nbPlace le nombre de place max du tarif
     */
    public Tarif(int idTarif,String couleur, int prix, int nbPlace){
        this.id=idTarif;
        this.couleur = couleur;
        this.prix = prix;
        this.nbPlace=nbPlace;
    }

    /**
     * Constructeur de la classe Tarif sans identifiant de la BD
     * @param couleur la couleur du tarif
     * @param prix le prix
     * @param nbPlace le nombre de place max du tarif
     */
    public Tarif(String couleur, int prix, int nbPlace){
        this.couleur = couleur;
        this.prix = prix;
        this.nbPlace=nbPlace;
    }

    /**
     * Retourne tous les Tarifs
     * @return La liste des tarifs
     */
    public static List<Tarif> findEntities() {
        List<Tarif> lesTarifs = null;
        try {
            lesTarifs = TarifBD.realAllTarif();
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
        return lesTarifs;
    }

    /**
     * Recherche un Tarif grâce à son id
     * @param idTarif L'id du tarif recherché
     * @return
     */
    public static Tarif findEntitie(int idTarif) {
        Tarif t = null;
        try {
            t=TarifBD.readTarif(idTarif);
        } catch (SQLException ex) {
            ex.printStackTrace();
        } catch (Exception ex) {
            ex.printStackTrace();
        }
        return t;
    }

    /**
     * Retourne l'id du Tarif
     * @return l'id du Tarif
     */
    public int getId() {
        return this.id;
    }

    /**
     * Retourne le prix du Tarif
     * @return le prix du Tarif
     */
	public int getPrix() {
        return this.prix;
	}

    /**
     * Retourne la couleur du Tarif
     * @return le prix du Tarif
     */
	public String getCouleur() {
        return this.couleur;
	}

    /**
     * Retourne la chaîne de caractère représentant le Tarif
     * @return la chaîne de caractère représentant le Tarif
     */
    public String toString(){
        return this.couleur+" ("+this.prix+"€)";
    }
}
